package com.link.base.base.mpconfig.service;

import com.alibaba.fastjson.JSONObject;
import com.link.base.base.mpconfig.model.*;
import com.link.base.sms.model.Template;
import com.link.core.basic.service.BasicService;

import java.util.List;
import java.util.Map;

/**
 * 小程序模板消息
 *
 * @author: 闫有霞
 * @date: 2019/12/19
 */
public interface MpTemplateService extends BasicService<Template> {

    /**
     * 获取小程序账号的类目
     *
     * @author lujiang
     * @date 2019-11-26
     * @return 该小程序账号的类目集合
     * @throws Exception
     */
    List<Mp> getMpCategory(String accesstoken) throws Exception;

    /**
     * 获取帐号所属类目下的公共模板标题
     *
     * @author lujiang
     * @date 2019-11-26
     * @param accesstoken
     * @return
     * @throws Exception
     */
    List<PubTemplateTitle> getPubTemplateTitleList(String accesstoken) throws Exception;

    /**
     * 获取模板标题下的关键词列表
     *
     * @author lujiang
     * @date 2019-11-26
     * @param entity
     * @return
     */
    List<PubTemplateKeyWord> getPubTemplateKeyWordsById(PubTemplateTitle entity,String accesstoken) throws Exception;

    /**
     * 获取当前帐号下的个人模板列表
     *
     * @author lujiang
     * @date 2019-11-26
     * @param entity
     * @return
     * @throws Exception
     */
    JSONObject getTemplateList(Mp entity) throws Exception;

    /**
     * 发送订阅消息(单条发送)
     *
     * @author lujiang
     * @date 2019-11-26
     * @param entity
     * @return
     * @throws Exception
     */
    Map<String,Object> subscribeMessageSend(SendTempMessage entity) throws Exception;

    /**
     * 根据场景发送小程序订阅消息
     *
     * @author 路江
     * @date 2020-1-6
     * @param sendTempMessage
     * @throws Exception
     */
    void sendMpSubscribeMsg(SendTempMessage sendTempMessage) throws Exception;
}
